package com.hexingmo.dawn.lang;


/**
 * Java系统属性键常量类
 * 定义了常用的Java系统属性键，用于获取系统相关信息
 *
 * @author He Xing Mo
 * @since 1.0
 */
public class JavaPropsKey {

    private JavaPropsKey() {
        throw new IllegalStateException("Static utility classes do not support instantiation");
    }

    // ==================== CPU和架构相关属性 ====================
    
    /**
     * CPU架构列表
     * 返回当前系统支持的CPU架构列表
     */
    public static final String SUN_CPU_ISALIST = "sun.cpu.isalist";
    
    /**
     * CPU字节序（大端/小端）
     * 返回CPU的字节序，如"little"或"big"
     */
    public static final String SUN_CPU_ENDIAN = "sun.cpu.endian";
    
    /**
     * 数据模型架构
     * 返回JVM的数据模型，如"32"或"64"
     */
    public static final String SUN_ARCH_DATA_MODEL = "sun.arch.data.model";

    // ==================== 桌面环境相关属性 ====================
    
    /**
     * 桌面环境
     * 返回当前桌面环境信息
     */
    public static final String SUN_DESKTOP = "sun.desktop";

    // ==================== 编码相关属性 ====================
    
    /**
     * Unicode编码
     * 返回系统使用的Unicode编码方式
     */
    public static final String SUN_IO_UNICODE_ENCODING = "sun.io.unicode.encoding";
    
    /**
     * 文件编码
     * 返回系统默认的文件编码
     */
    public static final String FILE_ENCODING = "file.encoding";
    
    /**
     * JNU编码
     * 返回JNU（Java Native Utilities）使用的编码
     */
    public static final String SUN_JNU_ENCODING = "sun.jnu.encoding";
    
    /**
     * 文件编码包
     * 返回文件编码相关的包信息
     */
    public static final String FILE_ENCODING_PKG = "file.encoding.pkg";

    // ==================== Java供应商相关属性 ====================
    
    /**
     * Java供应商
     * 返回Java运行时的供应商信息
     */
    public static final String JAVA_VENDOR = "java.vendor";
    
    /**
     * Java供应商URL
     * 返回Java供应商的官方网站URL
     */
    public static final String JAVA_VENDOR_URL = "java.vendor.url";
    
    /**
     * Java供应商Bug报告URL
     * 返回Java供应商的Bug报告页面URL
     */
    public static final String JAVA_VENDOR_URL_BUG = "java.vendor.url.bug";

    // ==================== 文件系统相关属性 ====================
    
    /**
     * 文件分隔符
     * 返回系统使用的文件路径分隔符
     */
    public static final String FILE_SEPARATOR = "file.separator";
    
    /**
     * 路径分隔符
     * 返回系统使用的路径分隔符
     */
    public static final String PATH_SEPARATOR = "path.separator";
    
    /**
     * 行分隔符
     * 返回系统使用的行分隔符
     */
    public static final String LINE_SEPARATOR = "line.separator";

    // ==================== Java版本相关属性 ====================
    
    /**
     * Java版本
     * 返回Java运行时的版本号
     */
    public static final String JAVA_VERSION = "java.version";
    
    /**
     * Java运行时版本
     * 返回Java运行时的完整版本信息
     */
    public static final String JAVA_RUNTIME_VERSION = "java.runtime.version";
    
    /**
     * Java运行时名称
     * 返回Java运行时的名称
     */
    public static final String JAVA_RUNTIME_NAME = "java.runtime.name";
    
    /**
     * Java类版本
     * 返回Java类文件的版本号
     */
    public static final String JAVA_CLASS_VERSION = "java.class.version";
    
    /**
     * Java规范版本
     * 返回Java语言规范的版本号
     */
    public static final String JAVA_SPECIFICATION_VERSION = "java.specification.version";
    
    /**
     * Java规范名称
     * 返回Java语言规范的名称
     */
    public static final String JAVA_SPECIFICATION_NAME = "java.specification.name";
    
    /**
     * Java规范供应商
     * 返回Java语言规范的供应商
     */
    public static final String JAVA_SPECIFICATION_VENDOR = "java.specification.vendor";

    // ==================== JVM相关属性 ====================
    
    /**
     * JVM名称
     * 返回Java虚拟机的名称
     */
    public static final String JAVA_VM_NAME = "java.vm.name";
    
    /**
     * JVM版本
     * 返回Java虚拟机的版本号
     */
    public static final String JAVA_VM_VERSION = "java.vm.version";
    
    /**
     * JVM供应商
     * 返回Java虚拟机的供应商
     */
    public static final String JAVA_VM_VENDOR = "java.vm.vendor";
    
    /**
     * JVM信息
     * 返回Java虚拟机的详细信息
     */
    public static final String JAVA_VM_INFO = "java.vm.info";
    
    /**
     * JVM规范版本
     * 返回JVM规范的版本号
     */
    public static final String JAVA_VM_SPECIFICATION_VERSION = "java.vm.specification.version";
    
    /**
     * JVM规范名称
     * 返回JVM规范的名称
     */
    public static final String JAVA_VM_SPECIFICATION_NAME = "java.vm.specification.name";
    
    /**
     * JVM规范供应商
     * 返回JVM规范的供应商
     */
    public static final String JAVA_VM_SPECIFICATION_VENDOR = "java.vm.specification.vendor";

    // ==================== 类路径相关属性 ====================
    
    /**
     * 启动类路径
     * 返回JVM启动时使用的类路径
     */
    public static final String SUN_BOOT_CLASS_PATH = "sun.boot.class.path";
    
    /**
     * 启动库路径
     * 返回JVM启动时使用的库路径
     */
    public static final String SUN_BOOT_LIBRARY_PATH = "sun.boot.library.path";
    
    /**
     * 类路径
     * 返回当前应用程序的类路径
     */
    public static final String JAVA_CLASS_PATH = "java.class.path";
    
    /**
     * 扩展目录
     * 返回Java扩展目录的路径
     */
    public static final String JAVA_EXT_DIRS = "java.ext.dirs";
    
    /**
     * 认可目录
     * 返回Java认可目录的路径
     */
    public static final String JAVA_ENDORSED_DIRS = "java.endorsed.dirs";
    
    /**
     * 库路径
     * 返回Java库文件的搜索路径
     */
    public static final String JAVA_LIBRARY_PATH = "java.library.path";

    // ==================== 用户相关属性 ====================
    
    /**
     * 用户名
     * 返回当前用户的名称
     */
    public static final String USER_NAME = "user.name";
    
    /**
     * 用户主目录
     * 返回当前用户的主目录路径
     */
    public static final String USER_HOME = "user.home";
    
    /**
     * 用户工作目录
     * 返回当前用户的工作目录路径
     */
    public static final String USER_DIR = "user.dir";
    
    /**
     * 用户语言
     * 返回当前用户的语言设置
     */
    public static final String USER_LANGUAGE = "user.language";
    
    /**
     * 用户国家
     * 返回当前用户的国家设置
     */
    public static final String USER_COUNTRY = "user.country";
    
    /**
     * 用户脚本
     * 返回当前用户的脚本设置
     */
    public static final String USER_SCRIPT = "user.script";
    
    /**
     * 用户变体
     * 返回当前用户的变体设置
     */
    public static final String USER_VARIANT = "user.variant";
    
    /**
     * 用户时区
     * 返回当前用户的时区设置
     */
    public static final String USER_TIMEZONE = "user.timezone";

    // ==================== 操作系统相关属性 ====================
    
    /**
     * 操作系统名称
     * 返回当前操作系统的名称
     */
    public static final String OS_NAME = "os.name";
    
    /**
     * 操作系统版本
     * 返回当前操作系统的版本号
     */
    public static final String OS_VERSION = "os.version";
    
    /**
     * 操作系统架构
     * 返回当前操作系统的架构
     */
    public static final String OS_ARCH = "os.arch";
    
    /**
     * 操作系统补丁级别
     * 返回当前操作系统的补丁级别
     */
    public static final String SUN_OS_PATCH_LEVEL = "sun.os.patch.level";

    // ==================== Java启动器相关属性 ====================
    
    /**
     * Java启动器
     * 返回Java启动器的信息
     */
    public static final String SUN_JAVA_LAUNCHER = "sun.java.launcher";
    
    /**
     * Java命令
     * 返回启动Java应用程序的命令
     */
    public static final String SUN_JAVA_COMMAND = "sun.java.command";

    // ==================== Java主目录相关属性 ====================
    
    /**
     * Java主目录
     * 返回Java安装目录的路径
     */
    public static final String JAVA_HOME = "java.home";
    
    /**
     * 临时目录
     * 返回系统临时目录的路径
     */
    public static final String JAVA_IO_TMPDIR = "java.io.tmpdir";

    // ==================== AWT相关属性 ====================
    
    /**
     * AWT工具包
     * 返回AWT使用的工具包信息
     */
    public static final String AWT_TOOLKIT = "awt.toolkit";
    
    /**
     * AWT打印机作业
     * 返回AWT打印机作业的信息
     */
    public static final String JAVA_AWT_PRINTERJOB = "java.awt.printerjob";
    
    /**
     * AWT图形环境
     * 返回AWT图形环境的信息
     */
    public static final String JAVA_AWT_GRAPHICSENV = "java.awt.graphicsenv";

    // ==================== 编译器相关属性 ====================
    
    /**
     * 编译器管理
     * 返回编译器管理的信息
     */
    public static final String SUN_MANAGEMENT_COMPILER = "sun.management.compiler";


    // ==================== JBoss相关属性 ====================
    
    /**
     * JBoss模块系统包
     * 返回JBoss模块系统的包信息
     */
    public static final String JBOSS_MODULES_SYSTEM_PKGS = "jboss.modules.system.pkgs";

}